function $(_id){
	return document.getElementById(_id);
}

function Class(_bases, _init, _strengthen){
	_bases = __wrapArray(_bases); 
	var r = function(){
		for(var i=0;i<_bases.length;i++){
			if(_bases[i]){
				if(typeof _bases[i]=='function'){
					_bases[i].apply(this, arguments);
				}
			}
		}
		if(_init&&typeof _init=='function'){
			 _init.apply(this, arguments);
		}
	};
	$extend(r, _bases);
	$strengthen(r, _strengthen);
	return r;
}
function __wrapArray(_o){
	if(! (_o instanceof Array))
		_o = [_o]; 
	return _o;
}
function __copy(_dst, _src){
	if(_src==null)return;
	for(p in _src){
		_dst[p] = _src[p];
	}
}
function $strengthen(_me, _sups){
	__copy(_me, _sups);
	
}
function $extend(_me, _sups){
	_sups = __wrapArray(_sups);
	if(typeof _me == 'function'){
		_me = _me.prototype; 
	}
	for(var i=0;i<_sups.length;i++){
		if(_sups[i]){
			var pt = null;
			if(typeof _sups[i]=='function'){
				pt = _sups[i].prototype;
			} else if(typeof _sups[i]=='object'){
				pt = _sups[i];
			}
			__copy(_me, pt);
		}
	}
}
